Personal video recorders (PVRs), also known as digital video recorders (DVRs), e.g., TiVo and ReplayTV devices, are popular nowadays, stemming from their capabilities of Apausing@, Arewinding@ and Afast-forwarding@ live television (TV) broadcast while it is being recorded. They may also offer programming access and recording functions, including Aseason pass@-like options for automatically recording every episode of a show for an entire season and an Aon-screen guide@ for looking up recorded programs to view. The PVRs may also suggest programs for recording based on a user=s viewing habit.
With the advent of digital communications technology, many TV broadcast streams are transmitted in digital formats. For example, Digital Satellite System (DSS), Digital Broadcast Services (DBS), and Advanced Television Standards Committee (ATSC) broadcast streams are digitally formatted pursuant to the well known Moving Pictures Experts Group 2 (MPEG-2) standard. The MPEG-2 standard specifies, among others, the methodologies for video and audio data compressions which allow multiple programs, with different video and audio feeds, multiplexed in a transport stream traversing a single broadcast channel. A digital TV receiver may be used to decode an MPEG-2 encoded transport stream, and extract the desired program therefrom. The prior art PVRs take advantage of MPEG-2 compression of video and audio data to maximize use of their limited storage capacity.
MPEG-2 Background
In accordance with the MPEG-2 standard, video data may be compressed based on a sequence of groups of pictures (GOPs), in which each GOP may begin with an intra-coded picture frame (also known as an AI-frame@), which is obtained by spatially compressing a complete picture using discrete cosine transform (DCT). As a result, if an error or a channel switch occurs, it is possible to resume correct decoding at the next I-frame.
The GOP may represent additional frames by providing a much smaller block of digital data that indicates how small portions of the I-frame, referred to as macroblocks, move over time. Thus, MPEG-2 achieves its compression by assuming that only small portions of an image change over time, making the representation of these additional frames extremely compact. Although GOPs have no relationship between themselves, the frames within a GOP have a specific relationship which builds off the initial I-frame.
The compressed video and audio data are carried by continuous elementary streams, respectively, which are broken into access units or packets, resulting in packetized elementary streams (PESs). These packets are identified by headers that contain time stamps for synchronizing, and are used to form MPEG-2 transport streams. For digital broadcasting, multiple programs and their associated PESs are multiplexed into a single transport stream. A transport stream has PES packets further subdivided into short fixed-size data packets, in which multiple programs encoded with different clocks can be carried. A transport stream not only comprises a multiplex of audio and video PESs, but also other data such as MPEG-2 program specific information (sometimes referred to as metadata) describing the transport stream. The MPEG-2 metadata may include a program associated table (PAT) that lists every program in the transport stream. Each entry in the PAT points to an individual program map table (PMT) that lists the elementary streams making up each program. Some programs are open, but some programs may be subject to conditional access (encryption) and this information is also carried in the MPEG-2 transport stream, possibly as metadata.
The aforementioned fixed-size data packets in a transport stream each carry a packet identifier (PID) code. Packets in the same elementary streams all have the same PID, so that a decoder can select the elementary stream(s) it needs and reject the remainder. Packet-continuity counters may be implemented to ensure that every packet that is needed to decode a stream is received.